Visual Studio 2010(C#4/.NET Framework 4)にて。
このコードは通る §
using System;
using System.Linq;
class A { }
class B : A { }
class Program
{
static void Main(string[] args)
{
B[] b = { new B() };
Console.WriteLine(b.Cast<A>().Count());
}
}
でも、このコードは通らない §
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
byte[] b = { 0 };
Console.WriteLine(b.Cast<char>().Count());
}
}
こう書き直すと通る。 §
Console.WriteLine(b.Select(c => (char)c).Count());
説明 §
ただのメモなので、説明はなし。